/**
 *
 * @author Valdez
 */

import java.util.InputMismatchException;
import java.util.Scanner;

public class Driver {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        
        
        Scanner readln = new Scanner(System.in);
        boolean salir = false;
        
        do{
            instrucciones();
            int parentesis = 0;
            boolean error = false;
            String instruccion = readln.nextLine();

            for (int i = 0; i< instruccion.length(); i++){
                if (instruccion.charAt(i) == '('){
                    parentesis ++;
                    
                }
                if (instruccion.charAt(i) == ')'){
                    parentesis --;
                }
            }

            error = (parentesis != 0);

            if (error)
                System.out.println("La cantidad de parentesis esta incorrecta");
            else{
                //(+ (- 4 -2) (* 3 4) 5 (/ 15 3))
                //String[] temp = {"(","+","(","-","4","-2",")","(","*","3","4",")","5","(","/","15","3",")",")"};
                //String[] temp = {"(","+","5","(","*","2","3",")",")"};
                String[] temp = {"(","*","(","-","70","32",")","(","/","5","9",")",")"};
                List lista= new List(temp);
                System.out.println("El resultado es: "+lista.evaluar());
            }
            
        }while (salir);
                
    }
    
    
    /**
     * muestra las instrucciones
     */
    public static void instrucciones(){
        System.out.println("\n+--  INSTRUCCIONES   -------------------------------+");
        System.out.println("| Ha ingresado a la simulacion de un interprete de  |");
        System.out.println("| LISP, introduzca cada funcion siguiendo la        |");
        System.out.println("| sintaxis de LISP, utilice prefix y parentesis para|");
        System.out.println("| cada subfuncion. Para salir introduzca (exit).    |");
        System.out.println("+---------------------------------------------------+\n");
    }
    
    public static int pedirNumero(String texto){
        Scanner readln = new Scanner(System.in);
        boolean pedir;
        int numero = 0;
        do{
            numero = 0;
            pedir = false;
            try{
                    System.out.println(texto);
                    numero = readln.nextInt();
                    pedir = false;
            }
            catch(InputMismatchException exception){
                    pedir = true;
                    System.out.println("\n ERROR --> NUMERO NO VALIDO \n");
            }
        readln.nextLine();
        }while (pedir);
        return numero;
    }
}
